/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package com.qp.smsmarketing.view.mbean;

import com.qp.smsmarketing.dao.ContatoDAO;
import com.qp.smsmarketing.dao.GrupoDAO;
import com.qp.smsmarketing.dao.MensagemDAO;
import com.qp.smsmarketing.entity.Contato;
import com.qp.smsmarketing.entity.Grupo;
import com.qp.smsmarketing.entity.Mensagem;
import com.qp.smsmarketing.view.ViewEnvioMensagem;
import com.qp.smsmarketing.view.mbean.abstractmbean.AbstractMBean;
import java.util.List;
import javax.swing.DefaultListModel;

/**
 *
 * @author waldenilson
 */
public class EnvioMensagemMBean extends AbstractMBean {
    private ViewEnvioMensagem vEMensagem;
    private MensagemDAO mdao = new MensagemDAO();
    
    public void exibirView(ViewEnvioMensagem vem) {
        carregarView(vEMensagem, vem);
        this.vEMensagem = vem;
    }
    
    public void iniciar(ViewEnvioMensagem vem)
    {
          // buscar todos grupos ativos
            GrupoDAO gdao = new GrupoDAO();
            List<Grupo> lg = gdao.buscarTodosAtivo();
            DefaultListModel<Grupo> dlm = new DefaultListModel<Grupo>();
            for (Grupo g : lg) // os grupos
                dlm.addElement(g);
            vem.getLtGrupo().setModel(dlm);
        
         // buscar todos os contatos
            ContatoDAO cdao = new ContatoDAO();
            List<Contato> lc = cdao.buscarTodosAtivo();
            DefaultListModel<Contato> dlmc = new DefaultListModel<Contato>();
            for (Contato c : lc) // os grupos
                dlmc.addElement(c);
            vem.getLtContato().setModel(dlmc);
        
        // buscar todos mensagens
            buscarCrudMensagem(vem);
       
    }
    
    public void selecionarRegistro(ViewEnvioMensagem vem) {
        
        int i = vem.getTableMensagem().getSelectedRow();
        //buscarCrudMensagem(v);
        int registros = mdao.buscarTodosAtivo().size();
        if ((i + 1) <= registros) {
            
            vem.getTf_titulo().setText(vem.getTableMensagem().getValueAt(i, 1).toString());
            vem.getTf_desc().setText(vem.getTableMensagem().getValueAt(i, 2).toString());
        }
    }
    
    public void buscarCrudMensagem(ViewEnvioMensagem vem) {
        
        List<Mensagem> lista = mdao.buscarTodosAtivo();
        int x = 0;
        for (Mensagem Mensagem : lista) {
            vem.getTableMensagem().setValueAt(Mensagem.getIdMensagem().toString(), x, 0);
            vem.getTableMensagem().setValueAt(Mensagem.getAssuntoMensagem(), x, 1);
            vem.getTableMensagem().setValueAt(Mensagem.getCorpoMensagem(), x, 2);
            x++;
        }
    }
    
    public String enviarSMS(ViewEnvioMensagem vem)
    {
        this.vEMensagem = vem;
        String retorno = "ok";
        if(vEMensagem.getTf_titulo().getText().length() < 2)
        {
            retorno = "Selecione uma mensagem.";
        }
        else if((vEMensagem.getLtGrupo().getSelectedIndex() < 0) && (vEMensagem.getLtContato().getSelectedIndex() <0))
        {
            retorno = "Selecione pelo menos um contato para enviar mensagem.";
        }
        return retorno;
    }

}
